package com.jiangyao.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jiangyao.model.entity.IntegralLog;

import java.util.List;

/**
 * <p>
 * 积分流水日志 服务类
 * </p>
 *
 * @author yangyongchaun
 * @since 2020-09-01
 */
public interface IntegralLogService extends IService<IntegralLog> {

	/**
	 * 通过类型获取用户总积分
	 * @param type
	 * @return
	 */
	Integer getIntegralSumByType(Integer type);

	/**
	 * 通过类型获取用户总积分
	 * @param typeList
	 * @return
	 */
	Integer getIntegralSumByTypeList(List<Integer> typeList);

	/**
	 * 保存积分日志并修改用户总积分
	 *
	 * @param allowRepeat 是否允许重复
	 * @param integralLog 积分日志
	 */
	void saveLogAndUpdateUserIntegral(boolean allowRepeat, IntegralLog integralLog);


	/**
	 * 保存积分日志并修改用户总积分
	 *
	 * @param allowRepeat 是否允许重复
	 * @param userId      用户ID
	 * @param sourceType   积分来源：1=个人经历-教育，2=个人经历-工作，3=个人经历-技能，4=个人经历-奖惩，5=课程课件观看，6=课堂试题合格，7=课堂教学，8=专业成绩，9=面试
	 * @param sourceId    积分来源关联ID,如：课程课件ID
	 * @param integralNum 增减积分数
	 * @param remark      备注
	 */
	void saveLogAndUpdateUserIntegral(boolean allowRepeat,Integer userId, Integer sourceType, String sourceId, Integer integralNum, String remark);

}
